package com.zofer.study.linkedlist;

/**
 * 合并两个有序链表
 * 题目：将两个有序的链表合并为一个新链表，要求新的链表是通过拼接两个链表的节点来生成的。
 */
public class MergeTwoLists {

    public static void main(String[] args) {
        ListNode listNode3 = new ListNode(3);
        ListNode listNode2 = new ListNode(2);
        listNode2.next = listNode3;
        ListNode listNode1 = new ListNode(1);
        listNode1.next = listNode2;
        ListNode l1 = new ListNode(0);
        l1.next = listNode1;

        ListNode listNode5 = new ListNode(3);
        ListNode listNode4 = new ListNode(2);
        listNode4.next = listNode5;
        ListNode l2 = new ListNode(1);
        l2.next = listNode4;
        ListNode useNewListNode = mergeTwoLists(l1,l2);
        System.out.println("111");
    }


    public static ListNode mergeTwoLists (ListNode l1, ListNode l2) {
        // write code here
        if(l1 == null) return l2;
        if(l2 == null) return l1;

        ListNode temp;
        if(l1.val < l2.val){
            temp = l1;
            temp.next = mergeTwoLists(l1.next,l2);
        }else{
            temp = l2;
            temp.next = mergeTwoLists(l1,l2.next);
        }
        return temp;
    }
}
